﻿using Colover.Infrastructure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Colover.Models
{
    public partial class WebsiteInfo : NotificationObject
    {
        public WebsiteInfo() { }

        #region Fields
        private int id;
        private string title;
        private string description;
        private string summary;
        private string keywords;
        private string url = "../";
        private string adminEmail;
        private DateTime startdate = DateTime.Now;
        private string cssStyle;
        private bool siteOff = false;
		private string offsiteUrl;
        private string logo;
        #endregion

        #region Properties
		/// <summary>
		/// Gets or sets the identifier.
		/// </summary>
		/// <value>The identifier.</value>
        public int Id {
			get { return id; }
			set {
				id = value;
				RaisePropertyChanged (() => this.Id);
			}
		}

		/// <summary>
		/// Gets or sets the title.
		/// </summary>
		/// <value>The title.</value>
        public string Title { 
			get{ return title;}
			set {
				title = value;
				RaisePropertyChanged (() => this.Title);
			}
		}

		/// <summary>
		/// Gets or sets the description.
		/// </summary>
		/// <value>The description.</value>
        public string Description {
			get{ return description;}
			set {
				description = value;
				RaisePropertyChanged (() => this.Description);
			}
		}

		/// <summary>
		/// Gets or sets the summary.
		/// </summary>
		/// <value>The summary.</value>
        public string Summary { 
			get{ return summary;}
			set {
				summary = value;
				RaisePropertyChanged (() => this.Summary);
			}
		}

		/// <summary>
		/// Gets or sets the keywords.
		/// </summary>
		/// <value>The keywords.</value>
        public string Keywords { 
			get{ return keywords;}
			set {
				keywords = value;
				RaisePropertyChanged (() => this.Keywords);
			}
		}

		/// <summary>
		/// Gets or sets the URL.
		/// </summary>
		/// <value>The URL.</value>
        public string Url { 
			get{ return url;}
			set {
				url = value;
				RaisePropertyChanged (() => this.Url);
			}
		}

		/// <summary>
		/// Gets or sets the administrator email.
		/// </summary>
		/// <value>The administrator email.</value>
        public string AdminEmail { 
			get{ return adminEmail;}
			set {
				adminEmail = value;
				RaisePropertyChanged (() => this.AdminEmail);
			}
		}

		/// <summary>
		/// Gets or sets the startdate.
		/// </summary>
		/// <value>The startdate.</value>
        public DateTime Startdate { 
			get{ return startdate;}
			set {
				startdate = value;
				RaisePropertyChanged (() => this.Startdate);
			}
		}

		/// <summary>
		/// Gets or sets the css style.
		/// </summary>
		/// <value>The css style.</value>
        public string CssStyle { 
			get{ return cssStyle;}
			set {
				cssStyle = value;
				RaisePropertyChanged (() => this.CssStyle);
			}
		}

		/// <summary>
		/// Gets or sets a value indicating whether this <see cref="Colover.Models.WebsiteInfo"/> site off.
		/// </summary>
		/// <value><c>true</c> if site off; otherwise, <c>false</c>.</value>
        public bool SiteOff { 
			get{ return siteOff;}
			set {
				siteOff = value;
				RaisePropertyChanged (() => this.SiteOff);
			}
		}

		/// <summary>
		/// Gets or sets the redirect URL when site is off.
		/// </summary>
		/// <value>The off site URL.</value>
		public string OffSiteUrl {
			get{ return offsiteUrl;}
			set {
				offsiteUrl = value;
				RaisePropertyChanged (() => this.OffSiteUrl);
			}
		}

		/// <summary>
		/// Gets or sets the logo.
		/// </summary>
		/// <value>The logo.</value>
		public string Logo {
			get{ return logo;}
			set {
				logo = value;
				RaisePropertyChanged (() => this.Logo);
			}
		}
        #endregion
    }
}
